package bean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import mensagem.MsgGrupo;
import session.SessionGrupo;
import entity.Grupo;

@ManagedBean
@SessionScoped
public class BeanGrupo {

	private Grupo grupo = new Grupo();

	private Grupo filtro = new Grupo();

	private List<Grupo> grupos = new ArrayList<Grupo>();

	private SessionGrupo session = new SessionGrupo();

	// //////////////////////////CONSTRUCTOR//////////////////////////////////////
	// ///////////////////////////////////////////////////////////////////////////

	public BeanGrupo() {

	}

	// //////////////////////////CONSTRUCTOR//////////////////////////////////////
	// ///////////////////////////////////////////////////////////////////////////

	public Grupo getGrupo() {
		return grupo;
	}

	public void setGrupo(Grupo grupo) {
		this.grupo = grupo;
	}

	public Grupo getFiltro() {
		return filtro;
	}

	public void setFiltro(Grupo filtro) {
		this.filtro = filtro;
	}

	public List<Grupo> getGrupos() {
		return grupos;
	}

	public void setGrupos(List<Grupo> grupos) {
		this.grupos = grupos;
	}

	public SessionGrupo getSession() {
		return session;
	}

	public void setSession(SessionGrupo session) {
		this.session = session;
	}

	// ///////////////////////////////METODOS/////////////////////////////////////
	// ///////////////////////////////////////////////////////////////////////////
	// ///////////////////////////////////////////////////////////////////////////

	public void reinit() {
		this.grupo = new Grupo();
		this.filtro = new Grupo();
		this.grupos = new ArrayList<Grupo>();
	}

	public String save() throws Exception {
		if (this.grupo.getId() != null) {
			return this.update();
		} else {
			if (this.session.save(this.grupo)) {
				this.reinit();
				MsgGrupo.msgSave();
			}
		}
		return "";
	}

	public String update() throws Exception {
		if (this.session.update(this.grupo)) {
			this.reinit();
			MsgGrupo.msgUpdate();
		}
		return null;
	}

	public String remove() {
		try {
			this.session.remove(grupo);
			MsgGrupo.msgRemove();
		} catch (Exception e) {
			MsgGrupo.msgNotRemove();
		}
		return null;
	}

	public void find() throws Exception {
		this.grupos = this.session.getController().findList(filtro);
	}

}
